/**
 * 项目名：	Rumba Plan
 * 
 * 版权所有(C)，上海海鼎信息工程股份有限公司，2006，所有权利保留。
 * 
 * 文件名：	ViewCartridge.java
 * 模块说明：	
 * 修改历史：
 * 2006-10-18 - lxm - 创建。
 */
package com.hd123.rumba.action.cartridge;

import net.sf.hibernate.HibernateException;

import com.hd123.rumba.domain.CDomain;
import com.hd123.rumba.exception.BusinessException;
import com.hd123.rumba.request.Action;
import com.hd123.rumba.request.ActionAbstractImpl;
import com.hd123.rumba.request.ActionConstants;

/**
 * 构件包 | Action | 提供统一入口
 * 
 * @author lxm
 * 
 */
public class ViewCartridge extends ActionAbstractImpl {

  @Override
  public String execute() throws Exception {
    if (dd.getCurrentUser() == null) {
      dd.setWorkingTemplate(ActionConstants.SESSIONTIMEOUT);
      return ActionConstants.APPLICATIONFRAME;
    }

    Action action = null;
    if (this.getCurrentDomain().getCode().equals(CDomain.VALUE_ID_ROOT))
      action = new ViewCartridgeAdvSys();
    else
      action = new ViewCartridgeSystem();
    action.init(dd);
    return action.execute();
  }

  /* 权限功能名 */
  public static final String FUNCTION_CARTRIDGE_VIEW = "构件包.查看";
  public static final String FUNCTION_FUNCVIEW_VIEW = "功能视图.查看";

  /**
   * 根据功能等信息取得权限ID。
   * 
   * @param functionName
   *          功能名，取值为类似“FUNCTION_*”的常量。
   * @return 返回权限ID，若没有权限对应则返回null。
   * @throws BusinessException
   * @throws HibernateException
   */
  public String getPermission(String functionName) throws BusinessException,
      HibernateException {
    if (this.getCurrentUser() == null)
      throw new BusinessException("必须先登录系统。");

    BaseViewCartridge action = null;
    if (this.getCurrentDomain().getCode().equals(CDomain.VALUE_ID_ROOT))
      action = new ViewCartridgeAdvSys();
    else
      action = new ViewCartridgeSystem();
    return action.getPermission(functionName);
  }

}
